home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / progtool / c / egem_210 / egem / example / dialdemo / dialhelp.c < prev    next >
C/C++ Source or Header  |  1995-11-25  |  5KB  |  122 lines

  1.  
  2. #include <e_gem.h>
  3.  
  4. char *help[] =
  5. {
  6. "",
  7. " Bedienung der Demonstrations-Dialoge: ",
  8. "=======================================",
  9. " (weitere Möglichkeiten s. Anleitung) ",
  10. "",
  11. " - fliegende Dialoge springen zur Mausposition bei Mausklick",
  12. "   außerhalb des Dialogs  (u.a. system-modale Alertboxen)",
  13. " - Rechtsklick auf ein Dialog-Objekt simuliert Doppelklick",
  14. " - Fensterdialoge auch im Hintergrund bedienbar",
  15. " - Tastaturbedienung (Hotkeys) der Dialoge, wobei in Dialogen mit",
  16. "   Eingabefeldern zusätzlich die Alternate-Taste gedrückt werden muß",
  17. "   (Doppelklick-Simulation durch zusätzlich gedrückte Shift-Taste)",
  18. " - Tastendrücke gehen an den Dialog unter dem Mauszeiger",
  19. "",
  20. " - Ikonififizierung von Fenstern bei vorhandenem ICFS-Server:",
  21. "   (analog falls weder MTOS- noch ICFS-Ikonifizierung vorhanden)",
  22. "   - [Alternate]-Closer - ein einzelnes Fenster verkleinern",
  23. "     (Hotkey: Ctrl-Space oder Ctrl-'*')",
  24. "   - [Shift]-Closer     - alle Fenster einzeln verkleinern",
  25. "     (Hotkey: Ctrl-Shift-Space oder Ctrl-Shift-'*')",
  26. "   - Mausklick in ein verkleinertes Fenster öffnet es wieder an der",
  27. "     alten Position",
  28. "",
  29. " - erweiterte Möglichkeiten in Eingabe-Feldern:",
  30. "   - Text kann per ACC_TEXT-Nachricht eingegeben werden",
  31. "   - exakte Cursorpositionierung per Maus",
  32. "   - Mauscursor wird über Eingabefeldern zum Textcursor",
  33. "   - Enthält die Eingabemaske eines der Zeichen \',.;:\\/\' und wird",
  34. "     dieses Zeichen eingegeben, wenn der Cursor VOR diesem Zeichen",
  35. "     steht, so wird das Eingabefeld bis zu diesem Zeichen mit",
  36. "     Leerzeichen gefüllt und der Cursor hinter dieses Zeichen",
  37. "     gesetzt (Beispiel: Punkt '.' in Dateimasken)",
  38. "   - erstes/letzes Eingabefeld (Home/Shift-Home, Shift-Up/Down)",
  39. "   - Wort vor/zurück (Ctrl-Left/Right)",
  40. "   - Anfang/Ende des Eingabesfeldes (Shift-Left/Right)",
  41. "   - vorheriges Eingabesfeld (Up,Shift-Tab/Enter/Return)",
  42. "   - nächstes Eingabefeld (Down/Tab/Enter)",
  43. "   - Cursor ein Zeichen nach links/rechts (Left/Right)",
  44. "   - Eingabefeld löschen (Esc)",
  45. "   - alle Eingabefelder löschen (Shift-Esc)",
  46. "   - Eingabefeld ab Cursor löschen (Shift-Del)",
  47. "   - Eingabefeld bis Cursor löschen (Shift-Backspace)",
  48. "   - Eingabebox für alle Ascii-Zeichen (Shift-Insert)",
  49. "   - Sonderzeicheneingabe durch Eingabe des dezimalen ASCII-Wertes",
  50. "     bei gedrückter Alternate-Taste auf dem Ziffernblock",
  51. "     => sofern der ASCII-Wert nicht eindeutig ist (ASCII<=25), müssen",
  52. "        alle drei Stellen (evtl. mit führenden Nullen) eingegeben",
  53. "        werden",
  54. "   - Undo (Undo bzw. Shift-Undo, sofern Undo-Button vorhanden)",
  55. "   - History-Funktion der letzten eingegebenen Texte (Ctrl-Up/Down)",
  56. "     => mit Shift-Taste: Text in History suchen",
  57. "   - Clipboardunterstützung:",
  58. "     => mit Shift-Taste: Text an Clipboard/Eingabe-Feld anhängen",
  59. "       -> Ctrl-X: Text ausschneiden und in Clipboard ablegen",
  60. "       -> Ctrl-C: Text in Clipboard ablegen",
  61. "       -> Ctrl-V: Text in Eingabefeld einfügen",
  62. "   - Einfüge-/Überschreibenmodus (Insert -> Strich-/Block-Cursor)",
  63. "   - Return selektiert beim letzten Eingabefeld das DEFAULT-Objekt",
  64. "",
  65. " - Popup-Menüs:",
  66. "   - Hotkeys (unterstrichener Buchstabe, optional mit gedrückter",
  67. "     Alternate-Taste)",
  68. "   - vorheriger Eintrag (Cursor links/hoch)",
  69. "   - nächster Eintrag (Cursor rechts/runter)",
  70. "   - erster Eintrag (Home)",
  71. "   - letzter Eintrag (Shift-Home)",
  72. "   - Abbruch (Escape/Undo)",
  73. "   - aktuellen Eintrag auswählen (Space,Return)",
  74. ""
  75. };
  76.  
  77. int old_line,first_line,scroll_help;
  78. int line_help_h,view_help_lines;
  79. int help_lines = (int) sizeof(help)>>2;
  80.  
  81. /* Zeichnen des Hilfetext-Ausschnitts */
  82.  
  83. int cdecl draw_help(PARMBLK *pb)
  84. {
  85.     GRECT work = *(GRECT *) &pb->pb_x;
  86.     reg char **ptr;
  87.     reg int x = pb->pb_x,y = pb->pb_y,i,start_line = first_line,lines = abs(first_line - old_line);
  88.     int pxy[4];
  89.  
  90.     v_set_mode(MD_REPLACE);
  91.     v_set_text(small_font_id,small_font,BLACK,NULL);
  92.     rc_intersect((GRECT *) &pb->pb_xc,&work);
  93.  
  94.     if (scroll_help)
  95.     {
  96.         i = lines*line_help_h;
  97.         if (first_line<old_line)
  98.             i = -i;
  99.  
  100.         if (!rc_sc_scroll(&work,0,i,&work))
  101.             return (0);
  102.         else
  103.         {
  104.             rc_grect_to_array(&work,pxy);
  105.             restore_clipping(pxy);
  106.         }
  107.     }
  108.  
  109.     rc_sc_clear(&work);
  110.  
  111.     start_line += (work.g_y - y)/line_help_h;
  112.     y += (start_line - first_line)*line_help_h;
  113.  
  114.     i = min((work.g_y - y + work.g_h + line_help_h - 1)/line_help_h,help_lines-start_line);
  115.     for (ptr=&help[start_line];--i>=0;y+=line_help_h)
  116.         v_gtext(x_handle,x,y,*ptr++);
  117.  
  118.     return(0);
  119. }
  120.  
  121. USERBLK    helpblk = {draw_help,0};
  122.